package com.developer.web.content.privatepage.partidos;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.developer.core.page.PrivatePage;
import com.developer.core.utils.ObjectToXML;
import com.developer.logic.modulo.autenticacion.AutenticacionServicio;
import com.developer.logic.modulo.autenticacion.SessionAppUsuario;
import com.developer.logic.modulo.partidos.PartidoServicio;
import com.developer.logic.modulo.partidos.dto.GolesPartido;
import com.developer.logic.modulo.partidos.dto.Partido;
import com.developer.logic.modulo.partidos.dto.TarjetasPartido;

public class PageRegistrarInfoPartido_2 extends PrivatePage{
	
	String nextPage = "partidos/PageRegistrarInfoPartido_3.do";
	
	public StringBuffer executeAction(HttpServletRequest request) {
		
		StringBuffer xmlPage = new StringBuffer();
		ObjectToXML objectToXML = ObjectToXML.getInstance();
		
		//Session de aplicacion 
		SessionAppUsuario sessionAppUsuario = AutenticacionServicio.getInstance().getSessionAppUsuario(request);
		
		if(sessionAppUsuario!=null){
			
			
			
			Map<String, Object> parameters = getParameters(request, true);
			Partido partido = (Partido)getParameterToObject("Partido", Partido.class, null, parameters);
			
			List<GolesPartido> golesPartidoEquipoUno = (List<GolesPartido>)getParameterToObject("GolesEquipoUno", List.class, GolesPartido.class, parameters);
			List<GolesPartido> golesPartidoEquipoDos = (List<GolesPartido>)getParameterToObject("GolesEquipoDos", List.class, GolesPartido.class, parameters);
			
			List<TarjetasPartido> tarjetasPartidoEquipoUno = (List<TarjetasPartido>)getParameterToObject("TarjetasEquipoUno", List.class, TarjetasPartido.class, parameters);
			List<TarjetasPartido> tarjetasPartidoEquipoDos = (List<TarjetasPartido>)getParameterToObject("TarjetasEquipoDos", List.class, TarjetasPartido.class, parameters);
			
			
			StringBuffer mensajeError = new StringBuffer();
			
			
			if(partido.getPuntos_1()!=null && partido.getPuntos_2()!=null){
			
				Boolean sinErrores = PartidoServicio.getInstance().registrarInfoPartido(	partido, 
																							golesPartidoEquipoUno, 
																							golesPartidoEquipoDos, 
																							tarjetasPartidoEquipoUno, 
																							tarjetasPartidoEquipoDos, 
																							mensajeError);
				
				if(sinErrores){
						sessionAppUsuario.getHttpSession().setAttribute("var.infoPartidoRegistrada", partido);
					
				}else{
						
						this.nextPage= this.nextPage+"?error=1";
						sessionAppUsuario.getHttpSession().removeAttribute("var.mensajeError");
						sessionAppUsuario.getHttpSession().setAttribute("var.mensajeError", mensajeError.toString());
				}
			}else{
				
					this.nextPage= this.nextPage+"?error=1";
					sessionAppUsuario.getHttpSession().removeAttribute("var.mensajeError");
					sessionAppUsuario.getHttpSession().setAttribute("var.mensajeError", "El partido debe tener asignado puntos para equipo local y visitante");
			}	
		
		
		}else{
			xmlPage.append("<error>1</error>");
			xmlPage.append(objectToXML.getXML(new String("Usuario invalido. Por favor inicie session correctamente")));
			
		}
		
		
		return xmlPage;
	}

	@Override
	public String getNextPage() {
		// TODO Auto-generated method stub
		return nextPage;
	}

	@Override
	public boolean isAccesoValido(HttpServletRequest arg0) {
		return AutenticacionServicio.getInstance().isAccesoPrivadoValido(arg0);
	}
	

}
